package com.liaoban.app.util;

import android.content.Context;
import android.text.TextUtils;

import com.liaoban.app.helper.ToastHelper;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 有效校验
 * Created by ybc on 17-9-15.
 */
public class VerifyUtil {

    public static final int MIN_PWD_LENGTH = 6;
    public static final int MAX_PWD_LENGTH = 20;

    public static boolean isEmail(String email) {
        String str = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
        Pattern p = Pattern.compile(str);
        Matcher m = p.matcher(email);
        return m.matches();
    }

    public static boolean isValidPassword(String password) {
        String str = "^[A-Za-z0-9]+$";
//        String str = "^[A-Za-z]+[0-9]+[A-Za-z0-9]*|^[0-9]+[A-Za-z]+[A-Za-z0-9]*";
        Pattern p = Pattern.compile(str);
        Matcher m = p.matcher(password);
        return m.matches();
    }

    /**
     * 验证手机格式
     */
    public static boolean isMobileNO(String mobiles) {
        /*
        移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
        联通：130、131、132、152、155、156、185、186
        电信：133、153、180、189、（1349卫通）、177
        总结起来就是第一位必定为1，第二位必定为3或5或7或8，其他位置的可以为0-9
        */
        String telRegex = "[1][3578]\\d{9}";//"[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，"\\d{9}"代表后面是可以是0～9的数字，有9位。
        if (TextUtils.isEmpty(mobiles)) {
            return false;
        } else {
            return mobiles.matches(telRegex);
        }
    }

    public static void validPwd(Context context, String password) {
        if (TextUtils.isEmpty(password)) {
            ToastHelper.show(context, "请输入密码");
            return;
        }
        int length = password.length();
        if (length < MIN_PWD_LENGTH) {
            ToastHelper.show(context, String.format("密码长度应大于等于%1$d位", MIN_PWD_LENGTH));
            return;
        }
        if (length > MAX_PWD_LENGTH) {
            ToastHelper.show(context, String.format("密码长度应少于等于%1$d位", MAX_PWD_LENGTH));
            return;
        }
        String str = "^[A-Za-z0-9]+$";
        Pattern p = Pattern.compile(str);
        Matcher m = p.matcher(password);
        if (!m.matches()) {
            ToastHelper.show(context, "密码请输入数字或字母");
            return;
        }
    }

    //是否存在中文
    public static boolean isContainChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }

}
